home *** CD-ROM | disk | FTP | other *** search
/ PD Collection CD 1 / PD Collection CD 1.iso / textual / tex / files / !tex / TeXsource / web2ctex / ctex / h / orig_texd < prev    next >
Encoding:
Text File  |  1988-06-02  |  10.2 KB  |  341 lines

  1. #undef    TRIP
  2. #undef    TRAP
  3. #define    STAT
  4. #undef    DEBUG
  5. #include "tex.h"
  6. #define memmax 65530L 
  7. #define memmin 0 
  8. #define bufsize 500 
  9. #define errorline 79 
  10. #define halferrorline 50 
  11. #define maxprintline 79 
  12. #define stacksize 200 
  13. #define maxinopen 15 
  14. #define fontmax 120 
  15. #define fontmemsize 36000L 
  16. #define paramsize 60 
  17. #define nestsize 40 
  18. #define maxstrings 4400 
  19. #define stringvacancies 15000 
  20. #define poolsize 45000L 
  21. #define savesize 2000 
  22. #define triesize 8000 
  23. #define dvibufsize 16384 
  24. #define filenamesize 1024 
  25. #define poolname "tex.pool" 
  26. #define memtop 65530L 
  27. typedef unsigned char ASCIIcode  ; 
  28. typedef unsigned char eightbits  ; 
  29. typedef integer poolpointer  ; 
  30. typedef integer strnumber  ; 
  31. typedef integer scaled  ; 
  32. typedef integer nonnegativeinteger  ; 
  33. typedef schar smallnumber  ; 
  34. typedef unsigned char quarterword  ; 
  35. typedef unsigned short halfword  ; 
  36. typedef schar twochoices  ; 
  37. typedef schar fourchoices  ; 
  38. #include "memory.h"
  39. typedef schar glueord  ; 
  40. typedef struct {
  41.     short modefield ; 
  42.   halfword headfield, tailfield ; 
  43.   integer pgfield, auxfield, mlfield ; 
  44. } liststaterecord  ; 
  45. typedef schar groupcode  ; 
  46. typedef struct {
  47.     quarterword statefield, indexfield ; 
  48.   halfword startfield, locfield, limitfield, namefield ; 
  49. } instaterecord  ; 
  50. typedef integer internalfontnumber  ; 
  51. typedef integer dviindex  ; 
  52. typedef integer triepointer  ; 
  53. typedef short hyphpointer  ; 
  54. EXTERN integer bad  ; 
  55. EXTERN ASCIIcode xord[128]  ; 
  56. EXTERN char xchr[256]  ; 
  57. EXTERN char nameoffile[filenamesize + 1], realnameoffile[filenamesize + 1]  ; 
  58. EXTERN integer namelength  ; 
  59. EXTERN ASCIIcode buffer[bufsize + 1]  ; 
  60. EXTERN integer first  ; 
  61. EXTERN integer last  ; 
  62. EXTERN integer maxbufstack  ; 
  63. EXTERN ASCIIcode strpool[poolsize + 1]  ; 
  64. EXTERN poolpointer strstart[maxstrings + 1]  ; 
  65. EXTERN poolpointer poolptr  ; 
  66. EXTERN strnumber strptr  ; 
  67. EXTERN poolpointer initpoolptr  ; 
  68. EXTERN strnumber initstrptr  ; 
  69. #ifdef INITEX
  70. EXTERN alphafile poolfile  ; 
  71. #endif /* INITEX */
  72. EXTERN alphafile logfile  ; 
  73. EXTERN schar selector  ; 
  74. EXTERN schar dig[23]  ; 
  75. EXTERN integer tally  ; 
  76. EXTERN integer termoffset  ; 
  77. EXTERN integer fileoffset  ; 
  78. EXTERN ASCIIcode trickbuf[errorline + 1]  ; 
  79. EXTERN integer trickcount  ; 
  80. EXTERN integer firstcount  ; 
  81. EXTERN schar interaction  ; 
  82. EXTERN boolean deletionsallowed  ; 
  83. EXTERN schar history  ; 
  84. EXTERN schar errorcount  ; 
  85. EXTERN strnumber helpline[6]  ; 
  86. EXTERN schar helpptr  ; 
  87. EXTERN boolean useerrhelp  ; 
  88. EXTERN integer interrupt  ; 
  89. EXTERN boolean OKtointerrupt  ; 
  90. EXTERN boolean aritherror  ; 
  91. EXTERN scaled remainder  ; 
  92. EXTERN halfword tempptr  ; 
  93. EXTERN memoryword 
  94. #define zmem (zzzaa - (int)(memmin))
  95.   zzzaa[memmax - memmin + 1]  ; 
  96. EXTERN halfword lomemmax  ; 
  97. EXTERN halfword himemmin  ; 
  98. EXTERN integer varused, dynused  ; 
  99. EXTERN halfword avail  ; 
  100. EXTERN halfword memend  ; 
  101. EXTERN halfword rover  ; 
  102. #ifdef DEBUG
  103. EXTERN boolean 
  104. #define freearr (zzzab - (int)(memmin))
  105.   zzzab[memmax - memmin + 1]  ; 
  106. EXTERN boolean 
  107. #define wasfree (zzzac - (int)(memmin))
  108.   zzzac[memmax - memmin + 1]  ; 
  109. EXTERN halfword wasmemend, waslomax, washimin  ; 
  110. EXTERN boolean panicking  ; 
  111. #endif /* DEBUG */
  112. EXTERN integer fontinshortdisplay  ; 
  113. EXTERN integer depththreshold  ; 
  114. EXTERN integer breadthmax  ; 
  115. EXTERN liststaterecord nest[nestsize + 1]  ; 
  116. EXTERN integer nestptr  ; 
  117. EXTERN integer maxneststack  ; 
  118. EXTERN liststaterecord curlist  ; 
  119. EXTERN short shownmode  ; 
  120. EXTERN schar oldsetting  ; 
  121. EXTERN memoryword zeqtb[5977]  ; 
  122. EXTERN quarterword 
  123. #define xeqlevel (zzzad -5267)
  124.   zzzad[710]  ; 
  125. EXTERN twohalves 
  126. #define hash (zzzae -258)
  127.   zzzae[3267]  ; 
  128. EXTERN halfword hashused  ; 
  129. EXTERN boolean nonewcontrolsequence  ; 
  130. EXTERN integer cscount  ; 
  131. EXTERN memoryword savestack[savesize + 1]  ; 
  132. EXTERN integer saveptr  ; 
  133. EXTERN integer maxsavestack  ; 
  134. EXTERN quarterword curlevel  ; 
  135. EXTERN groupcode curgroup  ; 
  136. EXTERN integer curboundary  ; 
  137. EXTERN integer magset  ; 
  138. EXTERN eightbits curcmd  ; 
  139. EXTERN halfword curchr  ; 
  140. EXTERN halfword curcs  ; 
  141. EXTERN halfword curtok  ; 
  142. EXTERN instaterecord inputstack[stacksize + 1]  ; 
  143. EXTERN integer inputptr  ; 
  144. EXTERN integer maxinstack  ; 
  145. EXTERN instaterecord curinput  ; 
  146. EXTERN integer inopen  ; 
  147. EXTERN alphafile inputfile[maxinopen + 1]  ; 
  148. EXTERN integer line  ; 
  149. EXTERN integer linestack[maxinopen + 1]  ; 
  150. EXTERN schar scannerstatus  ; 
  151. EXTERN halfword warningindex  ; 
  152. EXTERN halfword defref  ; 
  153. EXTERN halfword paramstack[paramsize + 1]  ; 
  154. EXTERN integer paramptr  ; 
  155. EXTERN integer maxparamstack  ; 
  156. EXTERN integer alignstate  ; 
  157. EXTERN integer baseptr  ; 
  158. EXTERN halfword parloc  ; 
  159. EXTERN halfword partoken  ; 
  160. EXTERN boolean forceeof  ; 
  161. EXTERN halfword curmark[5]  ; 
  162. EXTERN schar longstate  ; 
  163. EXTERN halfword pstack[9]  ; 
  164. EXTERN integer curval  ; 
  165. EXTERN schar curvallevel  ; 
  166. EXTERN smallnumber radix  ; 
  167. EXTERN glueord curorder  ; 
  168. EXTERN alphafile readfile[16]  ; 
  169. EXTERN schar readopen[17]  ; 
  170. EXTERN halfword condptr  ; 
  171. EXTERN schar iflimit  ; 
  172. EXTERN smallnumber curif  ; 
  173. EXTERN integer ifline  ; 
  174. EXTERN integer skipline  ; 
  175. EXTERN strnumber curname  ; 
  176. EXTERN strnumber curarea  ; 
  177. EXTERN strnumber curext  ; 
  178. EXTERN poolpointer areadelimiter  ; 
  179. EXTERN poolpointer extdelimiter  ; 
  180. EXTERN ccharpointer TEXformatdefault  ; 
  181. EXTERN boolean nameinprogress  ; 
  182. EXTERN strnumber jobname  ; 
  183. EXTERN bytefile dvifile  ; 
  184. EXTERN strnumber outputfilename  ; 
  185. EXTERN strnumber logname  ; 
  186. EXTERN bytefile tfmfile  ; 
  187. EXTERN memoryword fontinfo[fontmemsize + 1]  ; 
  188. EXTERN integer fmemptr  ; 
  189. EXTERN internalfontnumber fontptr  ; 
  190. EXTERN fourquarters fontcheck[fontmax + 1]  ; 
  191. EXTERN scaled fontsize[fontmax + 1]  ; 
  192. EXTERN scaled fontdsize[fontmax + 1]  ; 
  193. EXTERN halfword fontparams[fontmax + 1]  ; 
  194. EXTERN strnumber fontname[fontmax + 1]  ; 
  195. EXTERN strnumber fontarea[fontmax + 1]  ; 
  196. EXTERN eightbits fontbc[fontmax + 1]  ; 
  197. EXTERN eightbits fontec[fontmax + 1]  ; 
  198. EXTERN halfword fontglue[fontmax + 1]  ; 
  199. EXTERN boolean fontused[fontmax + 1]  ; 
  200. EXTERN integer hyphenchar[fontmax + 1]  ; 
  201. EXTERN integer skewchar[fontmax + 1]  ; 
  202. EXTERN integer charbase[fontmax + 1]  ; 
  203. EXTERN integer widthbase[fontmax + 1]  ; 
  204. EXTERN integer heightbase[fontmax + 1]  ; 
  205. EXTERN integer depthbase[fontmax + 1]  ; 
  206. EXTERN integer italicbase[fontmax + 1]  ; 
  207. EXTERN integer ligkernbase[fontmax + 1]  ; 
  208. EXTERN integer kernbase[fontmax + 1]  ; 
  209. EXTERN integer extenbase[fontmax + 1]  ; 
  210. EXTERN integer parambase[fontmax + 1]  ; 
  211. EXTERN fourquarters nullcharacter  ; 
  212. EXTERN integer totalpages  ; 
  213. EXTERN scaled maxv  ; 
  214. EXTERN scaled maxh  ; 
  215. EXTERN integer maxpush  ; 
  216. EXTERN integer lastbop  ; 
  217. EXTERN integer deadcycles  ; 
  218. EXTERN boolean doingleaders  ; 
  219. EXTERN quarterword c, f  ; 
  220. EXTERN scaled ruleht, ruledp, rulewd  ; 
  221. EXTERN halfword g  ; 
  222. EXTERN integer lq, lr  ; 
  223. EXTERN eightbits dvibuf[dvibufsize + 1]  ; 
  224. EXTERN dviindex halfbuf  ; 
  225. EXTERN dviindex dvilimit  ; 
  226. EXTERN dviindex dviptr  ; 
  227. EXTERN integer dvioffset  ; 
  228. EXTERN integer dvigone  ; 
  229. EXTERN halfword downptr, rightptr  ; 
  230. EXTERN scaled dvih, dviv  ; 
  231. EXTERN scaled curh, curv  ; 
  232. EXTERN internalfontnumber dvif  ; 
  233. EXTERN integer curs  ; 
  234. EXTERN scaled totalstretch[4], totalshrink[4]  ; 
  235. EXTERN halfword adjusttail  ; 
  236. EXTERN integer packbeginline  ; 
  237. EXTERN twohalves emptyfield  ; 
  238. EXTERN fourquarters nulldelimiter  ; 
  239. EXTERN halfword curmlist  ; 
  240. EXTERN smallnumber curstyle  ; 
  241. EXTERN smallnumber cursize  ; 
  242. EXTERN scaled curmu  ; 
  243. EXTERN boolean mlistpenalties  ; 
  244. EXTERN internalfontnumber curf  ; 
  245. EXTERN quarterword curc  ; 
  246. EXTERN fourquarters curi  ; 
  247. EXTERN integer magicoffset  ; 
  248. EXTERN halfword curalign  ; 
  249. EXTERN halfword curspan  ; 
  250. EXTERN halfword curloop  ; 
  251. EXTERN halfword alignptr  ; 
  252. EXTERN halfword curhead, curtail  ; 
  253. EXTERN halfword justbox  ; 
  254. EXTERN halfword passive  ; 
  255. EXTERN halfword printednode  ; 
  256. EXTERN halfword passnumber  ; 
  257. EXTERN scaled activewidth[7]  ; 
  258. EXTERN scaled curactivewidth[7]  ; 
  259. EXTERN scaled background[7]  ; 
  260. EXTERN scaled breakwidth[7]  ; 
  261. EXTERN boolean noshrinkerroryet  ; 
  262. EXTERN halfword curp  ; 
  263. EXTERN boolean secondpass  ; 
  264. EXTERN integer threshold  ; 
  265. EXTERN scaled minimaldemerits[4]  ; 
  266. EXTERN scaled minimumdemerits  ; 
  267. EXTERN halfword bestplace[4]  ; 
  268. EXTERN halfword bestplline[4]  ; 
  269. EXTERN scaled discwidth  ; 
  270. EXTERN halfword easyline  ; 
  271. EXTERN halfword lastspecialline  ; 
  272. EXTERN scaled firstwidth  ; 
  273. EXTERN scaled secondwidth  ; 
  274. EXTERN scaled firstindent  ; 
  275. EXTERN scaled secondindent  ; 
  276. EXTERN halfword bestbet  ; 
  277. EXTERN integer fewestdemerits  ; 
  278. EXTERN halfword bestline  ; 
  279. EXTERN integer actuallooseness  ; 
  280. EXTERN integer linediff  ; 
  281. EXTERN halfword hc[66]  ; 
  282. EXTERN smallnumber hn  ; 
  283. EXTERN halfword ha, hb  ; 
  284. EXTERN internalfontnumber hf  ; 
  285. EXTERN ASCIIcode hu[64]  ; 
  286. EXTERN integer hyfchar  ; 
  287. EXTERN schar hyf[65]  ; 
  288. EXTERN smallnumber hyphenpassed  ; 
  289. EXTERN twohalves trie[triesize + 1]  ; 
  290. EXTERN smallnumber hyfdistance[256]  ; 
  291. EXTERN smallnumber hyfnum[256]  ; 
  292. EXTERN quarterword hyfnext[256]  ; 
  293. EXTERN strnumber hyphword[308]  ; 
  294. EXTERN halfword hyphlist[308]  ; 
  295. EXTERN hyphpointer hyphcount  ; 
  296. #ifdef INITEX
  297. EXTERN quarterword trieophash[511]  ; 
  298. #endif /* INITEX */
  299. EXTERN quarterword trieopptr  ; 
  300. #ifdef INITEX
  301. EXTERN ASCIIcode triec[triesize + 1]  ; 
  302. EXTERN quarterword trieo[triesize + 1]  ; 
  303. EXTERN triepointer triel[triesize + 1]  ; 
  304. EXTERN triepointer trier[triesize + 1]  ; 
  305. EXTERN triepointer trieptr  ; 
  306. #endif /* INITEX */
  307. #ifdef INITEX
  308. EXTERN triepointer triehash[triesize + 1]  ; 
  309. #endif /* INITEX */
  310. #ifdef INITEX
  311. EXTERN boolean trietaken[triesize + 1]  ; 
  312. EXTERN triepointer triemin  ; 
  313. #endif /* INITEX */
  314. EXTERN triepointer triemax  ; 
  315. EXTERN scaled bestheightplusdepth  ; 
  316. EXTERN halfword pagetail  ; 
  317. EXTERN schar pagecontents  ; 
  318. EXTERN scaled pagemaxdepth  ; 
  319. EXTERN halfword bestpagebreak  ; 
  320. EXTERN integer leastpagecost  ; 
  321. EXTERN scaled bestsize  ; 
  322. EXTERN scaled pagesofar[8]  ; 
  323. EXTERN halfword lastglue  ; 
  324. EXTERN integer lastpenalty  ; 
  325. EXTERN scaled lastkern  ; 
  326. EXTERN integer insertpenalties  ; 
  327. EXTERN boolean outputactive  ; 
  328. EXTERN halfword curbox  ; 
  329. EXTERN halfword aftertoken  ; 
  330. EXTERN boolean longhelpseen  ; 
  331. EXTERN strnumber formatident  ; 
  332. EXTERN wordfile fmtfile  ; 
  333. EXTERN integer readyalready  ; 
  334. EXTERN alphafile writefile[16]  ; 
  335. EXTERN boolean writeopen[18]  ; 
  336. EXTERN halfword writeloc  ; 
  337. EXTERN poolpointer editnamestart  ; 
  338. EXTERN integer editnamelength, editline, tfmtemp  ; 
  339.  
  340. #include "coerce.h"
  341.